#ifndef G3_VIEW_H
#define G3_VIEW_H

#include "r_camera.h"
#include "r_frustum.h"

#include <GL/gl.h>

namespace G3 {

class VIEW: public CAMERA {
    public:

        FRUSTUM ViewFrustum;

//==============================================================================
// Multiplies OpenGL matrix by our camera rotation matrix
//==============================================================================
        void glMultRotationMatrix ();

//==============================================================================
// Multiplies OpenGL matrix by our camera matrix and extracts View Frustum
//==============================================================================
        void glLook ();

//==============================================================================
// Sets ViewFrustum FieldOfView
//==============================================================================
		void SetFieldOfView (float FOV);

//==============================================================================
// Sets ViewFrustum AspectRatio
//==============================================================================
		void SetAspectRatio (uint Width, uint Height);

//==============================================================================
// Sets ViewFrustum Near and Far plane distances from the frustum origin
//==============================================================================
		void SetNearFarDistance (float NearDist, float FarDist);
};

}

#endif //G3_VIEW_H
